package com.nageoffer.jobtrain.projects.common.enums;

import lombok.Getter;
import lombok.RequiredArgsConstructor;

/**
 * 用户预约竞赛提醒方式枚举类，必须是 0、1、2、3等情况
 */
@RequiredArgsConstructor
public enum ContestRemindTypeEnums {
    /**
     * APP站内通知
     */
    APP(0, "App通知"),

    /**
     * 手机短信通知
     */
    SMS(1, "手机短信通知");

    /**
     * 通知类型
     */
    @Getter
    private final int type;

    /**
     * 通知描述
     */
    @Getter
    private final String describe;

    /**
     * 根据通过类型获取通知
     *
     * @param type 通知类型
     * @return 通知枚举
     */
    public static ContestRemindTypeEnums getByType(Integer type) {
        for (ContestRemindTypeEnums remindTypeEnum : values()) {
            if (remindTypeEnum.getType() == type) {
                return remindTypeEnum;
            }
        }
        return null;
    }

    /**
     * 根据通知类型获取通知描述
     *
     * @param type 通知类型
     * @return 通知描述
     */
    public static String getDescribeByType(Integer type) {
        for (ContestRemindTypeEnums remindTypeEnum : values()) {
            if (remindTypeEnum.getType() == type) {
                return remindTypeEnum.getDescribe();
            }
        }
        return null;
    }
}